package moverules;

import board.Board;
import board.Move;
import board.Board.CellType;
import board.Move.Direction;
import board.VisitedCellHelper;

/**
 * 
 * Det här är en exempelimplementation av MoveRule
 * 
 * Den här regeln går att använda för en flyttad spelare, den kollar
 * om gubben får stå på cellen, dvs. det är inte en vägg eller på annat sätt
 * blockerad och returnerar då true. Denna implementation kan inte flytta på lådor.
 * 
 */
public class PlayerMove implements MoveRule 
{
	
	@Override
	public boolean isLegalMove(Board board, Move move, Direction direction) 
	{
		
		boolean value = true;

		value &= ( board.getCellType( move ) != CellType.Wall );
		value &= ( board.getCellType( move ) != CellType.Box );
		value &= ( board.getCellType( move ) != CellType.BoxOnGoal );
		
		return value;
	}

}
